Method For Controlling the Walk of Humanoid Robot

ABSTRACT

The invention relates to a method for controlling walking of humanoid bipedal walking robot. More specifically, the invention comprises steps of designing a zero momentum position (ZMP) of a robot for the ground surface (a); calculating trajectories of a center of gravity (COG) of the robot along with the trajectory of the ZMP (b); calculating an angular velocity of driving motors of two feet, which has the robot walk according to the trajectory of the ZMP (c); and controlling walking of the robot by driving the driving motors according to the angular velocity of the driving motors calculated above. The robot walking control method according to the invention has stability against disturbances.

TECHNICAL FIELD

The invention relates to a method for controlling walking of humanoid bipedal walking robot that can walk with two feet. The robot walking control method according to the invention has stability against disturbances.

BACKGROUND ART

The following technologies about conventional bipedal walking of humanoid robot are known.

First, the method performing walking control by using ground reactive force, which is measured on sole of bipedal walking robot, is disclosed in U.S. Pat. No. 5,151,859 and U.S. Pat. No. 5,432,417.

Second, a walking control method using the movement pattern of gravitational center of bipedal walking robot is suggested in U.S. Pat. No. 5,337,235.

Third, real ground surface may have arbitrary small decline for the robot performing walking according to predetermined walking pattern. To overcome the instability of a bipedal walking robot from this, a method that a decline measurement device is attached to the bipedal walking robot for correcting walking pattern according to the ground decline measured is disclosed in U.S. Pat. No. 5,404,086.

Fourth, a method for generating a variety of walking patterns that the movement of body are taken into account is disclosed in U.S. Pat. No. 5,808,433, U.S. Pat. No. 5,872,893, and U.S. Pat. No. 5,936,367.

But, conventional robot walking control methods do not have desirable effect in the stability point of view.

DISCLOSURE OF INVENTION Technical Problem

The invention is invented to solve problems described above, which provides a method for controlling walking of humanoid bipedal walking robot that can walk on two feet. The robot walking control method according to the invention has stability against disturbances.

Accordingly, the object of the invention is to provide a walking control method of humanoid bipedal walking robot.

Technical Solution

The invention relates to a method for controlling walking of humanoid bipedal walking robot. More specifically, the invention is related to a robot walking control method comprising steps of:

designing a zero momentum position (ZMP) of a robot for the ground surface (a);

calculating trajectories of a center of gravity (COG) of the robot from the ZMP (b);

calculating an angular velocity of driving motors of two feet, which make the robot walk according to the trajectory of the ZMP (c); and

controlling walking of the robot by driving the driving motors according to the angular velocity of the driving motors calculated above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a conceptual picture of humanoid robot.

FIG. 2 is a rolling sphere model for dynamic walking humanoid robot.

FIG. 3 depicts desired ZMP trajectory.

FIG. 4 depicts X-directional (forward direction) desired COG trajectory.

FIG. 5 depicts Y-directional (left-right direction) desired COG trajectory

FIG. 6 is a walking controller for bipedal walking robot.

MODE FOR THE INVENTION

Hereinafter, embodiments of the invention with reference to drawings are explained concretely. The invention, however, is not confined by the embodiments below.

1. A Simplified Model of a Bipedal Walking Robot

First, a simplified model of a humanoid bipedal walking robot is explained. The bipedal waking mechanism is an essential part of a humanoid robot as depicted in FIG. 1. Actually, to implement human-like walking, two legs should have high degrees of freedom not less than 12. So, it is difficult to use all of their dynamics to design their controller and to analyze their stability.

As an alternative, a method of calculating COG, simplifying the walking related dynamics of bipedal robot as the equation of motion for a point mass at COG.

As depicted in FIG. 2, assuming that the motion of COG is constrained on the plane (z=c_(z)), the rolling sphere model on the plane with the concentrated point mass (m) can be obtained as the simplified model for bipedal robot. In FIG. 2, the motion of the rolling sphere on a massless plane is described by the position of COG and the ZMP on the ground. The equations of motion of the rolling sphere in FIG. 2 are expressed on the plane z=c_(z) by:

τ_(x) =mgc _(y) −m{umlaut over (c)} _(y) c _(z)

τ_(y) =−mgc _(x) +m{umlaut over (c)} _(x) c _(z)

τ_(z) =−m{umlaut over (c)} _(x) c _(y) +m{umlaut over (c)} _(y) c _(x)   [Eq. 1]

where, g is the acceleration of gravity,

c_(z) is a height constant of the restricted plane, and

τ_(i) the moment for i-th coordinate axis.

If we introduce the definition of ZMP as [Equation 2] and applying it to [Equation 1], then two ZMP equations as [Equation 3] can be obtained as COG differential equation.

$\begin{matrix} {{p_{x}\overset{\Delta}{=}{- \frac{\tau_{y}}{m\; g}}}{p_{y}\overset{\Delta}{=}\frac{\tau_{x}}{m\; g}}} & \left\lbrack {{Eq}.\mspace{14mu} 2} \right\rbrack \\ {{p_{x} = {c_{x} - {\frac{c_{z}}{g}{\overset{¨}{c}}_{x}}}}{p_{y} = {c_{y} - {\frac{c_{z}}{g}{\overset{¨}{c}}_{y}}}}} & \left\lbrack {{Eq}.\mspace{14mu} 3} \right\rbrack \end{matrix}$

Strictly defining, Equation 3 is equivalent to the inverted pendulum model describing differential equation relationship between COG and ZMP, and which is used as a simplified humanoid biped walking model in the invention.

For convenience of explanation, g/c_(z,) which is commonly used, is defined and used as Equation 4.

ω_(n)=√{square root over (g/c _(z))}  [Eq. 4]

As explained above, Equation 3 is obtained as a simplified biped walking humanoid model, which will be used to generate the walk pattern and to prove the stability of the walking controller that will be explained below.

2. Generation of Walking (Desired ZMP/COG Trajectory) Pattern

To implement robot walking, the stepping positions on the ground as in FIG. 3, and the supporting phases as the double/single supporting should be predetermined.

As shown in FIG. 3, the stepping positions are generally represented as periodic functions and the supporting phases are used in moving the ZMP. In a single supporting phase, the ZMP should stay in the sole of supporting leg while the shifting leg making a step. In a double supporting phase, the ZMP should be moved from the sole of the supporting leg to the sole of shifting leg. These procedures should be repeated to make stable robot walking.

The desired trajectory of COG should be derived from the desired ZMP in FIG. 3 by solving the Eq. 3 of differential equation. Hereinafter, procedures for generation of the desired trajectory of COG for X-axis and Y-axis will be described.

2.1 X Directional Walk Pattern Generation

The X-directional desired ZMP trajectory in FIG. 3 is expressed with a period time T as following Equation 5.

for 0≦t<t _(d) , p _(x)(t)=(K _(x) /t _(d))t=c _(x)(t)

for t _(d) ≦t<T−t _(d) , p _(x)(t)=B

for T−t _(d) ≦t<T, p _(x)(t)=(2B−K _(x))+(K _(x) /t _(d))(t−(T−t _(d)))=c _(x)(t)   [Eq. 5]

where, B is the half of step length,

K_(x) means X-directional position of desired ZMP when the supporting phase is changed from double supporting phase to single supporting phase,

t_(d) means the time when p_(x)(t_(d))=K_(x) in the ZMP graph of broken line, namely, the change time from the double supporting phase to the single supporting phase in a period,

T−t_(d) means the change time from the single supporting phase to the double supporting phase.

In the double supporting phase, desired ZMP trajectory and desired COG trajectory are equivalent. Desired COG trajectory for generating desired ZMP trajectory in time domain in the single supporting phase can be obtained by solving the differential equation of Equation 3 in the condition of Equation 5 above. In other words, for t_(d)≦t<T−t_(d), desired COG trajectory can be obtained by solving the differential equation of Equation 6.

{umlaut over (c)} _(x)−ω_(n) ² c _(x)=−ω_(n) ² B  [Eq. 6]

General solution for above equation is as follows:

c _(x)(t)=C _(x1) cos h(ω_(n)(t−t _(d)))+C _(x2) sin h(ω_(n)(t−t _(d)))+B   [Eq. 7]

The unknown coefficient C_(x1) and C_(x2) of the general solution are determined like Equation 9 below by using the following boundary conditions of Equation 8.

c _(x)(t _(d))=K _(x)

ċ _(x)(t _(d))=K _(x) /t _(d)   [Eq. 8]

$\begin{matrix} {{C_{x\; 1} = {K_{x} - B}}{C_{x\; 2} = \frac{K_{x}}{t_{d}\omega_{n}}}} & \left\lbrack {{Eq}.\mspace{14mu} 9} \right\rbrack \end{matrix}$

Also, for satisfying another boundary conditions of c_(x)(T−t_(d))=2B−c_(x)(t_(d)) and ċ_(x)(T−t_(d))=ċ_(x)(t_(d)),

unknown coefficient K_(x) should satisfy the following relation:

$\begin{matrix} {K_{x} = \frac{{Bt}_{d}\omega_{n}}{{t_{d}\omega_{n}} + {\tanh \left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}} & \left\lbrack {{Eq}.\mspace{14mu} 10} \right\rbrack \end{matrix}$

Therefore, if the walking period T, the change time t_(d) from double supporting phase to single supporting phase in a period, and B, the half of a stride are determined, then K_(x) is determined from Eq. (10), and then, the unknown coefficients C_(x1) and C_(x2) can be determined from Eq. (9). Then, the X-directional desired trajectory of COG can be obtained as the smooth function as depicted in FIG. 4.

2.2 Y-Directional Walking Pattern Generation

The Y-directional ZMP trajectory in FIG. 3 is also described as following Eq. (11) with period T:

for 0≦t<t _(d), p _(y)(t)=(K _(y) /t _(d))t=c _(y)(t)

for t _(d≦t<T−t) _(d) , p _(y)(t)=A

for T−t _(d) ≦t<T, p _(y)(t)=−(K _(y) /t _(d))(t−T)=c _(y)(t)   [Eq. 11]

where A is the half of the distance between the centers of two ankles,

K_(y) means Y-directional position of desired ZMP in change from double supporting phase to single supporting phase,

t_(d) means the time when p_(y)(t_(d))=K_(y) in the ZMP graph of broken line, namely, the change time from double supporting phase to single supporting phase in a period.

T−t_(d) means the change time from the double supporting phase to the single supporting phase.

In the double supporting phase, desired ZMP trajectory and desired COG trajectory are equivalent. Desired COG trajectory for generating desired ZMP trajectory in time domain in the single supporting phase can be obtained by solving the differential equation of Eq. 3 with the condition of Eq. 11 above.

{umlaut over (c)} _(y)−ω_(n) ² c _(y)=−ω_(n) ² A, for t _(d≦t<T−t) _(d)   [Eq. 12]

General solution for the differential equation is as follow:

c _(y)(t)=C _(y1) cos h(ω_(n)(t−t _(d)))+C _(y2) sin h(ω_(n)(t−t _(d)))+A   [Eq. 13]

The unknown coefficient C_(y1) and C_(y2) of the general solution are determined as Equation 15 below by using the following boundary conditions of Equation 14.

c _(y)(t _(d))=K _(y)

ċ _(y)(t _(d))=K _(y) /t _(d)   [Eq. 14]

$\begin{matrix} {{C_{y\; 1} = {K_{y} - A}}{C_{y\; 2} = \frac{K_{y}}{t_{d}\omega_{n}}}} & \left\lbrack {{Eq}.\mspace{14mu} 15} \right\rbrack \end{matrix}$

Also, for satisfying another boundary conditions of c_(y)(T−t_(d))=c_(y)(t_(d)) and ċ_(y)(T−t_(d))=−ċ_(y)(t_(d)),

unknown coefficient K_(y) should satisfy the following relation:

$\begin{matrix} {K_{y} = \frac{{At}_{d}\omega_{n}{\tanh \left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}{1 + {t_{d}\omega_{n}{\tanh \left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}}} & \left\lbrack {{Eq}.\mspace{14mu} 16} \right\rbrack \end{matrix}$

Therefore, if the walking period T, the change time t_(d) from double supporting phase to single supporting phase in a period, and A, the half of the distance between the centers of two ankles are determined, then K_(y) is determined from Eq. (16), and then, the unknown coefficients C_(y1) and C_(y2) can be determined from Eq. (15). Therefore, the Y-directional desired trajectory of COG can be obtained as the smooth function as depicted in FIG. 5.

To implement the desired COG motions of FIG. 4 and FIG. 5 in the real humanoid robot, the COG inverse kinematics should be resolved kinematically according to the driving motor axes from the desired COG (retangular coordinate) motion to the driving angular (joint) motion of driving motor axes attached to the leg of the robot. Hereafter the concrete kinematical analytic method using the COG Jacobian between the COG velocity and the angular velocity for the driving motor axes attached to supporting legs is explained.

3. Kinematical Resolution Method of COG Jacobian for Implementation of Walking Pattern

At first, a partitioned COG Jacobian is introduced to embed a desired COG motion to a humanoid robot. Although a humanoid robot has 4 limbs of two arms and two legs, we assume that the robot has n limbs to derive a general equation.

The first limb is assigned to the base limb, and it should be one of the limbs on the ground to support the body. As depicted in FIG. 1, the body center coordinate frame is in the center of the robot, a kinematical equation reaching the i-th limb (one of both arms and legs) is written as follows:

^(o){dot over (x)}_(i)=^(o)J_(i){dot over (q)}_(i)   [Eq. 17]

where,

^(o){dot over (x)}_(i)

means the velocity of the end point from the body center coordination frame,

{dot over (q)}_(i)

means the joint velocity at the driving motor axis of the i-th limb, and

^(o)J_(i) means the usual Jacobian matrix that can be obtained in the body center co-ordination frame.

The term “kinematical Jacobian” is, for example, explained in materials like [R. M. Murray, Z. Li, S. S. Sastry, “A Mathematical Introduction to Robotic Manipulation”, Chapter 3].

The leading subscript ^(o) implies that the elements are represented on the body center coordinate system shown in FIG. 2, which is fixed on a humanoid robot.

For biped walking robot, the body center is floating, and thus the end point motion of the i-th limb with respect to the world coordinate system shown in FIG. 2 is written as follows:

{dot over (x)} _(i) =X _(i) ⁻¹ {dot over (x)} _(o) +X _(o) ^(o) J _(i) {dot over (q)} _(i)   [Eq. 18]

where,

{dot over (x)}_(o)=[{dot over (r)}_(o) ^(T);ω_(o) ^(T)]

is the velocity of the body center coordinate frame represented on the world coordinate system, and

the transformation matrix of below Eq. 19 is a (6×6) matrix which relates the velocity of body center coordinate frame and the i-th limb velocity on the world coordinate system.

$\begin{matrix} {X_{i} = \begin{bmatrix} I_{3} & \left\lbrack {R_{o}^{o}r_{i} \times} \right\rbrack \\ 0_{3} & I_{3} \end{bmatrix}} & \left\lbrack {{Eq}.\mspace{14mu} 19} \right\rbrack \end{matrix}$

for i=1, 2, . . . , n

where, I₃ and O₃ are an (3×3) identity and zero matrix, respectively,

R₀ means a (3×3) rotational matrix of body center coordinate system on the world coordinate system,

^(o)r_(i) means the position vector from the body center to the end point of the i-th limb represented on the world coordinate system,

[(.)x] is a skew-symmetric matrix for the cross product.

The transformation matrix X₀ is defined as the following:

$\begin{matrix} {X_{o} = \begin{bmatrix} R_{o} & 0_{3} \\ 0_{3} & R_{o} \end{bmatrix}} & \left\lbrack {{Eq}.\mspace{14mu} 20} \right\rbrack \end{matrix}$

From the equation, the i-th limb Jacobian represented on the world coordinate system can be obtained from J_(i)=X₀ ^(o)J_(i.)

All the limbs should satisfy the compatibility condition that the body center velocity is the same, and thus the i-th limb and the j-th limb should satisfy the following relation:

X _(i)({dot over (x)} _(i) −J _(i) {dot over (q)} _(i))=X _(j)({dot over (x)} _(j) −J _(j) {dot over (q)} _(j))  [Eq. 21]

From the Eq. 21, the joint velocity of any limb can be represented by the joint velocity of the base limb that supports the robot body on the ground.

Actually, the base limb should be chosen to be the supporting leg in the single supporting phase or any one of both legs in the double supporting phase. We express the base limb with the subscript 1, and then the joint velocity of any limb is expressed as:

{dot over (q)} _(i) =J _(i) ⁻¹ {dot over (x)} _(i) −J _(i) ⁻¹ X _(i1)({dot over (x)} ₁ −J ₁ {dot over (q)} ₁),   [Eq. 22]

for i=1, 2, . . . , n

where, the relative transformation matrix X_(i1) that is newly introduced is defined as follows:

$\begin{matrix} {X_{i\; 1}\overset{\Delta}{=}{{X_{i}^{- 1}X_{1}} = \begin{bmatrix} I_{3} & \left\lbrack {{R_{o}\left( {{{}_{}^{}{}_{}^{}} - {{}_{}^{}{}_{}^{}}} \right)} \times} \right\rbrack \\ 0_{3} & I_{3} \end{bmatrix}}} & \left\lbrack {{Eq}.\mspace{14mu} 23} \right\rbrack \end{matrix}$

If a limb is a redundant system, any null motion optimization algorithm should be added in Eq. 22.

General COG Jacobian is introduced as follows:

$\begin{matrix} {\overset{.}{c} = {{\overset{.}{r}}_{o} + {\omega_{o} \times \left( {c - r_{o}} \right)} + {\sum\limits_{i = 1}^{n}\; {R_{o}^{o}J_{c_{i}}{\overset{.}{q}}_{i}}}}} & \left\lbrack {{Eq}.\mspace{14mu} 24} \right\rbrack \end{matrix}$

where n is the number of limbs,

ċ

is the velocity vector of COG represented in the world coordinate system, namely,

ċ=[ċ_(x), ċ_(y), ċ_(z)]^(T) and

^(o)J_(ci) means COG Jacobian of i-th limb represented on the body center coordinate frame.

For the base limb (i=1), Eq. 18 is applied, Eq. 22 is applied for other limbs (i=2, . . . , n), and the COG motion of humanoid robot is determined only by the angular velocity

{dot over (q)}₁

as in Eq. 25.

$\begin{matrix} {\overset{.}{c} = \begin{matrix} {{\overset{.}{r}}_{1} + {\omega_{1} \times r_{c\; 1}} - {R_{o}^{o}J_{\upsilon_{1}}{\overset{.}{q}}_{1}} + {r_{c\; 1} \times}} \\ {{R_{o}^{o}J_{\omega_{1}}{\overset{.}{q}}_{1}} + {R_{o}^{o}J_{c_{1}}{\overset{.}{q}}_{1}} +} \\ {{\sum\limits_{i = 2}^{n}\; {R_{o}^{o}J_{c_{i}}{J_{i}^{- 1}\left( {{\overset{.}{x}}_{i} - {X_{i\; 1}{\overset{.}{x}}_{1}}} \right)}}} +} \\ {\sum\limits_{i = 2}^{n}\; {R_{o}^{o}J_{c_{i}}J_{i}^{- 1}X_{i\; 1}J_{1}{\overset{.}{q}}_{1}}} \end{matrix}} & \left\lbrack {{Eq}.\mspace{14mu} 25} \right\rbrack \end{matrix}$

Where, r_(c1)=c−r_(1,)

J_(v1)R₀ ^(o)J_(v1) and J_(ω1)=R₀ ^(o)J_(ω1) are the linear and angular velocity part of the base limb Jacobian on the body center coordinate frame.

Finally, if the base limb is stuck to the ground,

{dot over (r)}₁=ω₁=0 is satisfied in Eq. 25.

Eq. 25 can be rewritten as conventional kinematical Jacobian expressed as a base-limb motion.

ċ_(emc)=J_(emc){dot over (q)}₁   [Eq. 26]

where, C_(emc) and J_(emc) are as follows:

$\begin{matrix} {{{\overset{.}{c}}_{emc} = {\overset{.}{c} - {\sum\limits_{i = 2}^{n}\; {R_{o}^{o}J_{c_{i}}{J_{i}^{- 1}\left( {{\overset{.}{x}}_{i} - {X_{i\; 1}{\overset{.}{x}}_{1}}} \right)}}}}},{J_{emc} = {{R_{o}\begin{bmatrix} {{- {{}_{}^{}{}_{\upsilon 1}^{}}} + {r_{c\; 1} \times}} \\ {{{}_{}^{}{}_{\omega 1}^{}} + {{}_{}^{}{}_{c1}^{}}} \end{bmatrix}} + {\sum\limits_{i = 2}^{n}\; {R_{o}^{o}J_{c_{i}}J_{i}^{- 1}X_{i\; 1}{J_{1}.}}}}}} & \left\lbrack {{Eq}.\mspace{14mu} 27} \right\rbrack \end{matrix}$

The modified COG motion

ċ_(emc) consists of two components: a desired COG motion (the first term) which is derived according to the derived walking pattern, and the relative effect of other limbs(except for the base limb) to the COG motion (the second term).

The modified COG Jacobian J_(emc) also consists of 4 components: the effect of the body center (the first and the second term), the COG Jacobian of the first limb (the third term), and the effect of other limbs to the Jacobian (the last term).

The modified COG Jacobian J_(emc) is a (3×n₁) matrix where n₁ is a dimension(the number of drving joint) of the base limb, which is smaller than that of the original COG Jacobian, thus the calculation time can be reduced. After solving Eq. 26 for other limb, the joint motion of the base limb is automatically obtained. The resulting base limb motion balances a humanoid robot automatically during the movement of the all other limbs. With the joint motion of the base limb, the joint motions of all other limbs are obtained by Eq. 22.

The resulting motion follows the given desired motion, regardless of the balancing motion of the base limb. That is, the humanoid robot can balance automatically with a given desired motion.

4. Walking and Posture Controller Design.

Joint drivers generating actual motion of a humanoid robot is an electromechanical system constituting of electric motors, gears, and link mechanism, which includes many internal disturbances such as backlash or electric ripple. Since a humanoid should drive in co-existing environment with humans, an unexpected contact with human or environment can be disturbances at any time. Such disturbances can be a hindrance for the robot driver to follow the desired COG and ZMP trajectory derived, in excessive situation, the humanoid robot can fall down with loss of stability.

To prevent these phenomena and secure the walking stability of a robot, the walking controller disclosed in FIG. 6 is suggested in the invention.

The walking controller works as a controller when there is walking trajectory, which works as a posture controller for a robot body when the robot has stopped. So, the walking controller includes a posture controller.

In FIG. 6, first, the ZMP Planer and COG Planer generate the desired trajectories in FIGS. 4 and 5 which are satisfying the following differential equation:

p _(i) ^(d) =c _(i) ^(d)−1/ω _(n) ² {umlaut over (c)} _(i) ^(d) for i=x, y  [Eq. 28]

Second, the simplified model for the real bipedal walking robot has the following dynamics:

ċ _(i) =u _(i) +ε _(i)

p _(i) =c _(i)−1/ω_(n) ² {umlaut over (c)} _(i) for i=x, y  [Eq. 29]

where ε_(i) is the disturbance produced by actual control error,

u_(i) is the walking control input,

c_(i) and p_(i) are the actual COG and ZMP positions of the real bipedal robot, respectively.

In FIG. 6, the real bipedal robot makes the kinetic resolution from the walking control input to the motor driving joint velocity as explained above. Concretely speaking, the walking control input is applied to the term

ċ_(i) with u_(i).

Also, the real bipedal robot offers the ZMP information from force/torque sensors attached to the ankles of humanoid and the COG information from the encoder data attached to the motor driving axes by calculating COG position by resolving kinematical equation, respectively.

Hereafter, the design method of the walking (and posture) controller for the humanoid robot will be explained.

First, as depicted in

FIG. 6, the ZMP error and COG error are defined as follows:

e _(p,i)

p _(i) ^(d) −p _(i)

e _(c,i)

c _(i) ^(d) −c _(i), for i=x, y   [Eq. 30]

The walking controller is replaced as u_(i) by adding the ZMP controller and the COG controller in FIG. 6 to

ċwhich is the velocity component of the desired COG trajectory in Eq. 27.

u _(i) =ċ _(i) ^(d) −k _(p,i) e _(p,i) +k _(c,i) e _(c,i)   [Eq. 31]

where, the second term denotes the ZMP controller,

The third term denotes the COG controller.

The controllers are formed in proportional controller respectively. The COG controller has negative feedback, and the ZMP controller has positive feedback. As such, the controller according to Eq. 31 is different from conventional controllers. In the controller, k_(p,i) and k_(c,i) mean proportional gains of the ZMP controller and the COG controller, with the positive numbers satisfying the design condition in Eq. 32.

$\begin{matrix} {{k_{c,i} > \omega_{n}}{and}{0 < k_{p,i} < \left( {\frac{\omega_{n}^{2} - \beta^{2}}{\omega_{n}} - \gamma^{2}} \right)}} & \left\lbrack {{Eq}.\mspace{14mu} 32} \right\rbrack \end{matrix}$

where β and γ are proportional gain design condition variables of the ZMP controller, satisfying Eq. 33 below:

$\begin{matrix} {{\beta < \omega_{n}}{and}{\gamma < \sqrt{\frac{\omega_{n}^{2} - \beta^{2}}{\omega_{n}}}}} & \left\lbrack {{Eq}.\mspace{14mu} 33} \right\rbrack \end{matrix}$

When the walking controller of Eq. 31 using the proportional gain satisfying Eq. 32 and 33 is applied to the humanoid bipedal robot, the total walking closed-loop control system has excellent bipedal walking performance and posture stability, which also has relative stability against the COG error and ZMP error for disturbances theoretically.

5. The Stability of the Walking and Posture Controller.

To show the robustness of the controller against disturbances, we explain according to general procedure to prove disturbance input-to-state stability (ISS).

Disturbance input-to-state stability (ISS) is defined when the dissipative inequality like Eq. 34 below is satisfied:

{dot over (V)}≦−γ1(|e|)+γ2(|ε|)   [Eq. 34]

where {dot over (V)}represents the total derivative for Lyapunov function, it represents negative definite for e, and negative definite for ε.

Here, for theoretical proof, we assume that the disturbance produced by control error is bounded and its differentiation is also bounded, namely, |ε_(i)|<a and |{dot over (ε)}_(i)|<b with positive constants a and b.

As there is no way to prove stability for a system that have unbounded disturbance, generally, disturbances are assumed to be finite, which does not loss generality of stability proof explained below.

The first step to prove stability, we get the error dynamics for COG error from Eq. 28 and Eq. 29 as follows:

ë _(c,i)=ω_(n) ²(e _(c,i) −e _(p,i))  [Eq. 35]

Second, another COG error dynamics is obtained by using Eq. 29 and Eq. 31:

k _(p,i) e _(p,e) =ė _(c,i) +k _(c,i) e _(c,i)+ε_(i)   [Eq. 36]

Also, the equation can be rearranged as follows:

ė _(c,i) =k _(p,i) e _(p,i) −k _(c,i) e _(c,i)−ε_(i)   [Eq. 37]

Third, by differentiating Eq. 36 and by using Eq. 35 and Eq. 37, the ZMP error dynamics is obtained as follows:

$\begin{matrix} \begin{matrix} {{\overset{.}{e}}_{p,i} = {1/{k_{p,i}\left( {{\overset{¨}{e}}_{c,i} + {k_{c,i}{\overset{.}{e}}_{c,i}} + {\overset{.}{\varepsilon}}_{i}} \right)}}} \\ {= {{\omega_{n}^{2}/{k_{p,i}\left( {e_{c,i} - e_{p,i}} \right)}} +}} \\ {{{k_{c,i}/{k_{p,i}\left( {{k_{p,i}e_{p,i}} - {k_{c,i}e_{c,i}} - \varepsilon_{i}} \right)}} + {\left( {1/k_{p,i}} \right){\overset{.}{\varepsilon}}_{i}}}} \\ {= {{\left( \frac{\omega_{n}^{2} - k_{c,i}^{2}}{k_{p,i}} \right)e_{c,i}} - {\left( \frac{\omega_{n}^{2} - {k_{p,i}k_{c,i}}}{k_{p,i}} \right)e_{p,i}} +}} \\ {{\frac{1}{k_{p,i}}\left( {{\overset{.}{\varepsilon}}_{i} - {k_{c,i}\varepsilon_{i}}} \right)}} \end{matrix} & \left\lbrack {{Eq}.\mspace{14mu} 38} \right\rbrack \end{matrix}$

Fourth, to prove the stability, the following Lyapunov function is introduced.

$\begin{matrix} {{V\left( {e_{c,i},e_{p,i}} \right)}\overset{\Delta}{=}{\frac{1}{2}\left\lbrack {{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)e_{c,i}^{2}} + {k_{p,i}^{2}e_{p,i}^{2}}} \right\rbrack}} & \left\lbrack {{Eq}.\mspace{14mu} 39} \right\rbrack \end{matrix}$

where V(e_(c),e_(p)) is the positive definite function for k_(p,i)>0 and k_(c,i)>ω_(n).

In above equation, differentiating the Lyapunov function and adjusting by using the COG error dynamics of Eq. 37 and the ZMP error dynamics of Eq. 38, the following equation can be obtained:

$\begin{matrix} \begin{matrix} {\overset{.}{V} = {{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)e_{c,i}{\overset{.}{e}}_{c,i}} + {k_{p,i}^{2}e_{p,i}{\overset{.}{e}}_{p,i}}}} \\ {= {{{- {k_{c,i}\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)}}e_{c,i}^{2}} - {{k_{p,i}\left( {\omega_{n}^{2} - {k_{p,i}k_{c,i}}} \right)}e_{p,i}^{2}} -}} \\ {{{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)e_{c,i}\varepsilon_{i}} + {k_{p,i}e_{p,i}{\overset{.}{\varepsilon}}_{i}} - {k_{p,i}k_{c,i}e_{p,i}\varepsilon_{i}}}} \\ {= {{{- {k_{c,i}\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)}}e_{c,i}^{2}} - {{k_{p,i}\left( {\omega_{n}^{2} - {k_{p,i}k_{c,i}}} \right)}e_{p,i}^{2}} +}} \\ {{{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)\left( {{\alpha^{2}e_{c,i}^{2}} - {{{\alpha \; e_{c,i}} + {\frac{1}{2\alpha}\varepsilon_{i}}}}^{2} + {\frac{1}{4\alpha^{2}}\varepsilon_{i}^{2}}} \right)} +}} \\ {{{k_{p,i}\left( {{\beta^{2}e_{p,i}^{2}} - {{{\beta \; e_{p,i}} - {\frac{1}{2\beta}{\overset{.}{\varepsilon}}_{i}}}}^{2} + {\frac{1}{4\beta^{2}}{\overset{.}{\varepsilon}}_{i}^{2}}} \right)} +}} \\ {{k_{p,i}{k_{c,i}\left( {{\gamma^{2}e_{p,i}^{2}} - {{{\gamma \; e_{p,i}} + {\frac{1}{2\gamma}\varepsilon_{i}}}}^{2} + {\frac{1}{4\; \gamma^{2}}\varepsilon_{i}^{2}}} \right)}}} \\ {= {{{- \left( {k_{c,i} - \alpha^{2}} \right)}\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)e_{c,i}^{2}} -}} \\ {{{{k_{p,i}\left\lbrack {\omega_{n}^{2} - {\left( {k_{p,i} + \gamma^{2}} \right)k_{c,i}} - \beta^{2}} \right\rbrack}e_{p,i}^{2}} -}} \\ {{{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right){{{\alpha \; e_{c,i}} + {\frac{1}{2\alpha}\varepsilon_{i}}}}^{2}} - {k_{p,i}{{{\beta \; e_{p,i}} - {\frac{1}{2\beta}{\overset{.}{\varepsilon}}_{i}}}}^{2}} -}} \\ {{{k_{p,i}k_{c,i}{{{\gamma \; e_{p,i}} + {\frac{1}{2\gamma}\varepsilon_{i}}}}^{2}} +}} \\ {{{\left\lbrack {\frac{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)}{4\alpha^{2}} + \frac{k_{p,i}k_{c,i}}{4\; \gamma^{2}}} \right\rbrack \varepsilon_{i}^{2}} + {\frac{k_{p,i}}{4\beta^{2}}{\overset{.}{\varepsilon}}_{i}^{2}}}} \end{matrix} & \left\lbrack {{Eq}.\mspace{14mu} 40} \right\rbrack \end{matrix}$

In the equation, by excluding terms using completion of square with negative finite, the following inequality can be obtained for the differentiation of Lyapunov function:

$\begin{matrix} \begin{matrix} \begin{matrix} {\overset{.}{V} \leq {{{- \left( {k_{c,i} - \alpha^{2}} \right)}\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)e_{c,i}^{2}} -}} \\ {{{k_{p,i}\left\lbrack {\omega_{n}^{2} - {\left( {k_{p,i} + \gamma^{2}} \right)k_{c,i}} - \beta^{2}} \right\rbrack}e_{p,i}^{2}} +} \end{matrix} \\ {{\left\lbrack {\frac{\left( {k_{c,i}^{2} - \omega_{n}^{2}} \right)}{4\alpha^{2}} + \frac{k_{p,i}k_{c,i}}{4\gamma^{2}}} \right\rbrack \varepsilon_{i}^{2}} + {\frac{k_{p,i}}{4\beta^{2}}{\overset{.}{\varepsilon}}_{i}^{2}}} \end{matrix} & \left\lbrack {{Eq}.\mspace{14mu} 41} \right\rbrack \end{matrix}$

Where e² _(c,i) term is negative definite with the arbitrary positive number satisfying α<√{square root over (ω_(n))}and e² _(c,i) term is always negative definite under the given condition Eq. 32. And, if the ZMP proportional gain satisfies Eq. 32, for arbitrary constants β and γ satisfying Eq. 33, the terms related to e² _(p,i) are always negative definite. The last two terms in the above equation, that is, the square of disturbances (ε_(i) ²) and the square of its derivative ({dot over (ε)}_(i) ²) are always positive definite.

As suggested in Eq. 34, the walking controller has a disturbance input-to-state stability because it represents negative definite for error state variable and positive definite for disturbance, thus restricting the differential of Lyapunov function.

The thing that the ZMP controller, which is one part of the walking controller in Eq. 31, has positive feedback is fairly different from conventional controllers with negative feedback. For practical use, the gain conditions of walking controller can be simply rewritten without arbitrary positive number α, β, γ as follows:

k_(c,i)>ω_(n) and 0<k_(p,i)<ω_(n)  [Eq. 42]

Simplicity is possible because the stability proof is very conservative. Also, the proportional gain design condition in Eq. 42 is much easier to use.

An application Example of the Walking and Posture Controller.

In order to demonstrate the effectiveness of walking controller proposed in the invention, an application experiment for the biped walking robot was performed.

First, the desired ZMP/COG trajectories are obtained by setting the duration of walking T=1.0 [s], the change time from double support phase to single support phase t_(d)=0.1 [s], the half of both ankles A=0.09 [m], the half of walking stride B=0.1 [m], weight of the robot m=67.68 [kg], the height constant of COG c_(z)=0.7502 [m] and ω_(n)=√{square root over (g/c _(z))}=3.613.

Second, the gains of walking controller are set as the ZMP proportional gain k_(p,i)={3.6, 1.8} and the COG proportional gain k_(c,i)={6.6, 3.8}.

Excellent results have come by applying for a network-based humanoid robot (Mahru), which was developed by the inventors, using parameters above.

INDUSTRIAL APPLICABILITY

In this invention, the walking pattern generation method of a humanoid robot, a kinematical resolution to robot driving axes of walking motion, which uses the COG Jabobian, and a walking controller design method with stability are suggested. The developed humanoid walking controller is constituted of the difference between the COG controller and the ZMP controller, which has disturbance Input-to-State Stability (ISS) against disturbances, compared to a simplified walking robot model. 

1. A method for controlling walking of a humanoid bipedal walking robot comprising steps of: (a) designing a zero momentum position (ZMP) of the robot against the ground surface; (b) calculating trajectories of a center of mass (COG) of the robot from the ZMP; (c) calculating angular velocities of driving motors of two feet which make the robot walk according to the trajectory of the zero momentum position (ZMP); and (d) controlling walking of the robot by driving the driving motors according to the angular velocity of the driving motors calculated.
 2. The method of claim 1, wherein the zero momentum position (ZMP) for the walking direction (X-axis direction) p_(x)(t) of the robot in the step (a) is designed as the following Eq. 5: for 0≦t<t _(d) , p _(x)(t)=(K _(x) /t _(d))t=c _(x)(t) for t _(d) ≦t<T−t _(d) , p _(x() t)=B for T−t _(d) ≦t<T, p _(x)(t)=(2B−K _(x))+(K _(x) /t _(d))(t−(T−t _(d)))=c _(x)(t)  [Equation 5] wherein, T is a single period of walking, t_(d) means the change time from a double supporting phase to a single supporting phase in a period, B is the half of a stride, and K_(x) is displacement of the zero momentum position (ZMP) during the t_(d), which is determined from Eq. (10) $\begin{matrix} {K_{x} = \frac{{Bt}_{d}\omega_{n}}{{t_{d}\omega_{n}} + {\tanh\left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}} & \left\lbrack {{Equation}\mspace{20mu} 10} \right\rbrack \end{matrix}$
 3. The method of claim 2, wherein the COG for the X-axis direction c_(x)(t) in the step (b) is equivalent to the ZMP p_(x)(t) in the double supporting phase, and is equivalent to the following Eq. 7 in the single supporting phase: c _(x)(t)=C _(x1) cos h(ω_(n)(t−t _(d)))+C _(x2) sin h(ω_(n)(t−t _(d) ))+B   [Equation 7] wherein, the coefficient C_(x1) and C_(x2) are as the following Eq. 9: $\begin{matrix} {{C_{x\; 1} = {K_{x} - B}}{C_{x\; 2} = \frac{K_{x}}{t_{d}\omega_{n}}}} & \left\lbrack {{Equation}\mspace{20mu} 9} \right\rbrack \end{matrix}$
 4. The method of claim 1, wherein the ZMP p_(y)(t) for the left-right direction (the Y-axis direction) with respect to the walking proceeding direction (the X-axis direction) in the step (a) is designed as Eq. 11: for 0≦t<t _(d) , p _(y)(t)=(K _(y) /t _(d))t=c _(y)(t) for t _(d) ≦t<T−t− _(d) , p _(y)(t)=A for T−t _(d) ≦t<T, p _(y)(t)=−(K _(y) /t _(d))(t−T)=c _(y)(t)  [Eq. 11] wherein, T is a single period of walking, t_(d) is the change time from double supporting phase to single supporting phase in a period, A is the distance between the centers of two ankles, and K_(y) is the displacement of the ZMP during t_(d), which is defined as Eq. (16): $\begin{matrix} {K_{y} = \frac{{At}_{d}\omega_{n}{\tanh\left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}{1 + {t_{d}\omega_{n}{\tanh\left( {\omega_{n}\left( {\frac{T}{2} - t_{d}} \right)} \right)}}}} & \left\lbrack {{Eq}.\mspace{14mu} 16} \right\rbrack \end{matrix}$
 5. The method of claim 4, wherein the COG for the Y-axis direction c_(y)(t) is equivalent to the ZMP p_(y)(t) in the double supporting phase, and is equivalent to the following Eq. 13 in the single supporting phase: c _(y)(t)=C _(y1) cos h(ω_(n)(t−t _(d)))+C _(y2) sin h(ω_(n)(t−t _(d)))+A  [Eq. 13] wherein the coefficients C_(y1) and C_(y2) are as the following Eq. 15: $\begin{matrix} {{C_{y\; 1} = {K_{y} - A}}{C_{y\; 2} = \frac{K_{y}}{t_{d}\omega_{n}}}} & \left\lbrack {{Eq}.\mspace{14mu} 15} \right\rbrack \end{matrix}$
 6. The method of claim 5, wherein the angular velocity of a driving motor for a base limb in the step (c) is obtained by solving the dynamic equation of the following Eq. 25 for all the other limbs except the base limb: $\begin{matrix} {\overset{.}{c} = \begin{matrix} \begin{matrix} {{\overset{.}{r}}_{1} + {\omega_{1} \times r_{c\; 1}} -} \\ {{R_{o}^{o}J_{v_{1}}{\overset{.}{q}}_{1}} + {r_{c\; 1} \times R_{o}^{o}J_{\omega_{1}}{\overset{.}{q}}_{1}} +} \\ {{R_{o}^{o}J_{c_{1}}{\overset{.}{q}}_{1}} +} \\ {{\sum\limits_{i = 2}^{n}{R_{o}^{o}J_{c_{i}}{J_{i}^{- 1}\left( {{\overset{.}{x}}_{i} - {X_{i\; 1}{\overset{.}{x}}_{1}}} \right)}}} +} \end{matrix} \\ {\sum\limits_{i = 2}^{n}{R_{o}^{o}J_{c_{i}}J_{i}^{- 1}X_{i\; 1}J_{1}{\overset{.}{q}}_{1}}} \end{matrix}} & \left\lbrack {{Eq}.\mspace{14mu} 25} \right\rbrack \end{matrix}$ wherein, ċ is the velocity vector of the COG represented in the world coordinate system, r_(c1)=c−r₁ is a position vector from the end of the base limb to the center of gravity (COG), {dot over (q)}₁ is angular velocity of the driving motor attached to the bas limb, ^(o) _(Jci) is CoM Jacobian matrix of the i-th limb represented on the body center coordinate frame, and J_(v1)=R₀ ^(o)J_(v1) and J_(ω1)=R₀ ^(o)J_(ω1) are the partial matrix of the linear and angular velocity of the base limb Jacobian, respectively.
 7. The method of claim 6, wherein the base limb is selected to the supporting leg in the single supporting phase, and is selected in any one of two legs in the double supporting phase.
 8. The method of claim 6, wherein the angular velocity of the other limbs in the step (c) can be obtained from the following Eq. 22 by using the angular velocity of the driving motor of the base limb: {dot over (q)} _(i) =J _(i) ⁻¹ {dot over (x)} _(i) −J _(i) ⁻¹ X _(i1)({dot over (x)} ₁ −J ₁ {dot over (q)} ₁),   [Eq. 22] for i=1, 2, . . . , n wherein the relative transformation matrix X_(i1) is defined as follows: $\begin{matrix} {X_{i\; 1}\overset{\Delta}{=}{{X_{i}^{- 1}X_{1}} = \begin{bmatrix} I_{3} & \left\lbrack {{R_{o}\left( {{{}_{}^{}{}_{}^{}} - {{}_{}^{}{}_{}^{}}} \right)} \times} \right\rbrack \\ 0_{3} & I_{3} \end{bmatrix}}} & \left\lbrack {{Eq}.\mspace{14mu} 23} \right\rbrack \end{matrix}$
 9. The method of claim 6, wherein u_(i) in Eq. 31 wherein ZMP error and COG error are reflected is used as the COG velocity vector of the following Eq. 25: u _(i) =ċ _(i) ^(d) −k _(p,i) e _(p,i) +k _(c,i) e _(c,i)   [Eq. 31] wherein e_(p,i) and e_(e,i) are the ZMP error and the COG error respectively as defined in Eq. 30, and k_(p,i) and k_(c,I) are proportional control gains: e _(p,i)

p _(i) ^(d) −p _(i) e _(c,i)

c _(i) ^(d) −c _(i), for i=x, y   [Eq. 30]
 10. The method of claim 9, wherein the control gain k_(p,i) and k_(c,i) satisfy the design condition of Eq. 32: $\begin{matrix} {k_{c,i} > {\omega_{n}\mspace{14mu} {and}\mspace{14mu} 0} < k_{p,i} < \left( {\frac{\omega_{n}^{2} - \beta^{2}}{\omega_{n}} - \gamma^{2}} \right)} & \left\lbrack {{Eq}.\mspace{14mu} 32} \right\rbrack \end{matrix}$ wherein β and γ satisfy the following Eq. 33: $\begin{matrix} {\beta < {\omega_{n}\mspace{14mu} {and}\mspace{14mu} \gamma} < {\sqrt{\frac{\omega_{n}^{2} - \beta^{2}}{\omega_{n}}}.}} & \left\lbrack {{Eq}.\mspace{14mu} 33} \right\rbrack \end{matrix}$ 